package threadingexercise;

//饿汉模式  （多线程情况下只是读数据return instance，不涉及到修改所以是线程安全的）
class Singletion {
    //唯一实例化的本体
    private static Singletion instance = new Singletion();


    //获取到实例的方法
    public static Singletion getInstance() {
        return instance;
    }

    //构造方法私有化，就可以防止外部 new 实例，但是private类的内部可以调用构造方法
    private Singletion() { }
}

// 设计模式中的 单例模式: 只能创建一个实例对象
public class ThreadDemo17 {
    public static void main(String[] args) {

        //此时的 s1 和 s2是同一个对象
        Singletion s1 = Singletion.getInstance();
        Singletion s2 = Singletion.getInstance();

        //此时这里就报错了，构造方法私有化，就不允许外部new 对象了 ，
        // 因为不能调用到构造方法了
        //Singletion s3 = new Singletion();
    }
}
